package com.huike.report.service;

import java.util.List;
import java.util.Map;

import com.huike.common.core.domain.AjaxResult;
import com.huike.report.domain.vo.*;

import com.huike.clues.domain.TbActivity;
import com.huike.clues.domain.TbClue;
import com.huike.clues.domain.vo.IndexStatisticsVo;
import com.huike.contract.domain.TbContract;

public interface IReportService {

    /**
     *新增客户统计
     * @param beginCreateTime
     * @param endCreateTime
     * @return
     */
    public LineChartVO contractStatistics(String beginCreateTime, String endCreateTime);


    /**
     * 客户统计报表
     * @param tbContract
     * @return
     */
    public  List<TbContract> contractReportList(TbContract tbContract);

    /**
     * 销售统计
     * @param beginCreateTime
     * @param endCreateTime
     * @return
     */
    public LineChartVO salesStatistics(String beginCreateTime, String endCreateTime);



    /**
     * 销售统计部门报表
     * @param beginCreateTime
     * @param endCreateTime
     * @return
     */
    public List<Map<String, Object>> deptStatisticsList(String beginCreateTime, String endCreateTime);

    /**
     * 销售统计渠道报表
     * @param beginCreateTime
     * @param endCreateTime
     * @return
     */
    public List<Map<String, Object>> channelStatisticsList(String beginCreateTime, String endCreateTime);
    /**
     * 销售统计归属人报表
     * @param beginCreateTime
     * @param endCreateTime
     * @return
     */
    public List<Map<String, Object>> ownerShipStatisticsList(String beginCreateTime, String endCreateTime);

    /***
     * @Description： 线索统计
     * @Author: guoxiang
     * @CreateTime: 2022/9/6 9:37
     * @param beginCreateTime
     * @param endCreateTime
     * @return:com.huike.report.domain.vo.LineChartVO
     * @Version: 1.0
     */

    public LineChartVO cluesStatistics(String beginCreateTime, String endCreateTime);


    /***
     * @Description：  线索转化率桶装图
     * @Author: guoxiang
     * @CreateTime: 2022/9/6 10:57
     * @param beginCreateTime
     * @param endCreateTime
     * @return:com.huike.report.domain.vo.VulnerabilityMapVo
     * @Version: 1.0
     */

    public AjaxResult getVulnerabilityMap(String beginCreateTime, String endCreateTime);

    /**
     * 渠道统计
     * @param beginCreateTime
     * @param endCreateTime
     * @return
     */
    public List<Map<String, Object>> chanelStatistics(String beginCreateTime, String endCreateTime);


    /**
     * 活动统计
     * @param beginCreateTime
     * @param endCreateTime
     * @return
     */
    public List<Map<String, Object>> activityStatistics(String beginCreateTime, String endCreateTime);



    public List<TbClue> cluesStatisticsList(TbClue clue);

    /**
     * 活动渠道统计
     * @param activity
     * @return
     */
    public List<ActivityStatisticsVo> activityStatisticsList(TbActivity activity);


    public IndexVo getIndex(IndexStatisticsVo request);


    public List<Map<String,Object>> salesStatisticsForIndex(IndexStatisticsVo request);


    /**
     * 首页基本数据展示
     * @param beginCreateTime
     * @param endCreateTime
     * @return
     */
    IndexBaseInfoVO getBaseInfo(String beginCreateTime, String endCreateTime);

    /***
     * @Description： 首页今日简报数据展示
     * @Author: guoxiang
     * @CreateTime: 2022/9/5 14:55
     * @return:com.huike.report.domain.vo.IndexTodayInfoVO
     * @Version: 1.0
     */

    IndexTodayInfoVO getTodayInfo();


    /***
     * @Description： 首页-待办数据统计展示
     * @Author: guoxiang
     * @CreateTime: 2022/9/5 17:21
     * @param beginCreateTime
     * @param endCreateTime
     * @return:com.huike.report.domain.vo.IndexTodoInfoVO
     * @Version: 1.0
     */

    IndexTodoInfoVO getTodoInfo(String beginCreateTime, String endCreateTime);

    List<PieChartVO> subjectStatistics(String beginTime, String endTime);

    List<ConversionVo> businessChangeStatistics(String beginCreateTime, String endCreateTime);


//    List<Map<String,Object>> subjectStatistics(String beginTime, String endTime);
}
